package pe.com.cotelasa.scp.dominio.service;

import java.util.Collection;
import java.util.List;
import pe.com.cotelasa.common.dao.excepcion.DAOException;

import pe.com.cotelasa.scp.dominio.common.ResultadoServicio;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.entidad.Cliente;

public interface IServicioCliente {

    public Collection<Cliente> listarClientesActivos() throws ServiceException;

    public Cliente conseguirClientePorId(Integer idCliente) throws ServiceException;

    public void guardarCliente(Cliente cliente) throws ServiceException;

    public ResultadoServicio actualizarCliente(Cliente cliente) throws ServiceException;

    public Collection<Cliente> listarClientesPorFiltro(Cliente cliente) throws ServiceException;

    public void eliminarCliente(Cliente cliente) throws ServiceException;

    public Cliente conseguirClienteConUbigeo(Integer idCliente) throws ServiceException;
    
    public boolean validarRuc(String ruc) throws ServiceException;
    
    public boolean validarRazonSocial(String razonSocial) throws ServiceException;
    
    public boolean validarCodigo(String codigo) throws ServiceException;
    
    public Cliente obtenerClientePorRazonSocial(String razonSocial) throws ServiceException;
    
    public Collection<Cliente> listarClientesTipo(Cliente cliente) throws ServiceException;
}
